Skip to content

feat: add support for MASOS apps#2426

Open
mkroening wants to merge 14 commits into
mainfrom
masos
Open

feat: add support for MASOS apps#2426
mkroening wants to merge 14 commits into
mainfrom
masos

Conversation

@mkroening
Copy link
Copy Markdown
Member

@mkroening mkroening commented May 11, 2026

This PR adds the syscall infrastructure from hermit-os/hermit-rs#970 to hermit-builtins in the kernel repo instead.

Benefits:

  • It is easier to keep the syscall abstraction and the syscalls in sync.
  • We can reuse hermit-builtin's math and mem primitives.
  • It easier to use since we just link against a libhermit.a as always.

During the transition, I have refactored most of the code.

See hermit-os/hermit-rs#994.
Depends on hermit-os/hermit-rs#995.
Closes hermit-os/hermit-rs#874.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Results

Details
Benchmark Current: 8f6ea9b Previous: 1995748 Performance Ratio
startup_benchmark Build Time 101.32 s 97.26 s 1.04
startup_benchmark File Size 0.76 MB 0.76 MB 1.00
Startup Time - 1 core 0.80 s (±0.03 s) 0.81 s (±0.03 s) 0.99
Startup Time - 2 cores 0.81 s (±0.03 s) 0.81 s (±0.02 s) 1.00
Startup Time - 4 cores 0.82 s (±0.03 s) 0.82 s (±0.03 s) 1.00
multithreaded_benchmark Build Time 105.35 s 101.76 s 1.04
multithreaded_benchmark File Size 0.86 MB 0.86 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 67.46 % (±5.22 %) 66.91 % (±7.02 %) 1.01
Multithreaded Pi Efficiency - 4 Threads 40.58 % (±3.46 %) 41.78 % (±2.62 %) 0.97
Multithreaded Pi Efficiency - 8 Threads 20.17 % (±1.79 %) 20.03 % (±2.04 %) 1.01
micro_benchmarks Build Time 99.97 s 96.47 s 1.04
micro_benchmarks File Size 0.87 MB 0.87 MB 1.00
Scheduling time - 1 thread 71.33 ticks (±4.67 ticks) 71.35 ticks (±4.29 ticks) 1.00
Scheduling time - 2 threads 39.18 ticks (±4.62 ticks) 38.27 ticks (±4.80 ticks) 1.02
Micro - Time for syscall (getpid) 3.01 ticks (±0.29 ticks) 3.03 ticks (±0.33 ticks) 0.99
Memcpy speed - (built_in) block size 4096 75075.43 MByte/s (±52129.01 MByte/s) 75669.65 MByte/s (±52736.93 MByte/s) 0.99
Memcpy speed - (built_in) block size 1048576 29724.70 MByte/s (±24309.54 MByte/s) 29477.05 MByte/s (±24090.25 MByte/s) 1.01
Memcpy speed - (built_in) block size 16777216 25803.61 MByte/s (±21333.53 MByte/s) 25344.40 MByte/s (±21045.29 MByte/s) 1.02
Memset speed - (built_in) block size 4096 74944.46 MByte/s (±52040.44 MByte/s) 76041.75 MByte/s (±53007.66 MByte/s) 0.99
Memset speed - (built_in) block size 1048576 30507.03 MByte/s (±24757.09 MByte/s) 30224.16 MByte/s (±24517.62 MByte/s) 1.01
Memset speed - (built_in) block size 16777216 26577.64 MByte/s (±21833.69 MByte/s) 26091.14 MByte/s (±21520.38 MByte/s) 1.02
Memcpy speed - (rust) block size 4096 68629.41 MByte/s (±48139.18 MByte/s) 67847.73 MByte/s (±47702.41 MByte/s) 1.01
Memcpy speed - (rust) block size 1048576 29557.73 MByte/s (±24226.11 MByte/s) 29495.89 MByte/s (±24231.07 MByte/s) 1.00
Memcpy speed - (rust) block size 16777216 25879.66 MByte/s (±21371.22 MByte/s) 25761.59 MByte/s (±21357.10 MByte/s) 1.00
Memset speed - (rust) block size 4096 68850.10 MByte/s (±48297.04 MByte/s) 68063.04 MByte/s (±47855.91 MByte/s) 1.01
Memset speed - (rust) block size 1048576 30313.16 MByte/s (±24661.58 MByte/s) 30241.00 MByte/s (±24653.82 MByte/s) 1.00
Memset speed - (rust) block size 16777216 26640.65 MByte/s (±21852.73 MByte/s) 26436.66 MByte/s (±21756.66 MByte/s) 1.01
alloc_benchmarks Build Time 93.12 s 89.87 s 1.04
alloc_benchmarks File Size 0.84 MB 0.84 MB 1.00
Allocations - Allocation success 100.00 % 100.00 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 100.00 % 100.00 % 1
Allocations - Average Allocation time 13332.17 Ticks (±167.33 Ticks) 8684.14 Ticks (±133.75 Ticks) 1.54
Allocations - Average Allocation time (no fail) 13332.17 Ticks (±167.33 Ticks) 8684.14 Ticks (±133.75 Ticks) 1.54
Allocations - Average Deallocation time 874.32 Ticks (±153.65 Ticks) 776.46 Ticks (±122.30 Ticks) 1.13
mutex_benchmark Build Time 92.49 s 90.28 s 1.02
mutex_benchmark File Size 0.87 MB 0.87 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 12.86 ns (±0.80 ns) 13.08 ns (±0.98 ns) 0.98
Mutex Stress Test Average Time per Iteration - 2 Threads 16.70 ns (±12.45 ns) 16.84 ns (±8.53 ns) 0.99

This comment was automatically generated by workflow using github-action-benchmark.

stlankes and others added 2 commits May 12, 2026 14:21
Co-authored-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants